//#include<bits/stdc++.h>
//using namespace std;
//int main() {
//	int i = 0,j=0;
//	long long x = 20242024202 * 120;
//	x += 48;
//	cout << x;
//}
//#include<bits/stdc++.h>
//using namespace std;
//int arr[100010];
//int gcd(int a, int b) {
//	return b ? gcd(b, a % b) : a;
//}
//int main() {
//	int i = 0;
//	cin >> i;
//	for (int j = 0; j < i; j++)cin >> arr[j];
//	int Min = 0x3f3f3f3f;
//	int x = arr[0];
//	for (int j = 1; j < i; j++) {
//		x = gcd(x, arr[j]);
//	}
//	if (x != 1)
//		cout << -1;
//	else {
//		for (int j = 1; j < i; j++) {
//			x = gcd(arr[j-1], arr[j]);
//			if (x == 1)
//			{
//				cout << i;
//				return 0;
//			}
//		}
//		cout << i + 1;
//	}
//}
//#include<bits/stdc++.h>
//using namespace std;
//typedef long long LL;
//LL arr[200010];
//int main() {
//	int n;
//	cin >> n;
//	LL sum = 0;
//
//	for (int i = 0; i < n; i++) { cin >> arr[i]; sum += arr[i]; }
//	LL ans = 0;
//	for (int i = 0; i < n; i++)
//		ans += arr[i] * (sum - arr[i]);
//	cout << ans/2;
//}
#include<bits/stdc++.h>
using namespace std;
//bool is1(int x) {
//	string s = to_string(x);
//	if (s[0] == s[7] && s[1] == s[6] && s[2] == s[5] && s[3] == s[4])
//		return 1;
//	return 0;
//}
//bool is2(int x) {
//	string s = to_string(x);
//	if (s[0] == s[2] && s[0] == s[5] && s[0] == s[7] && s[1] == s[3]&&s[1]==s[4]&&s[1]==s[6])
//		return 1;
//	return 0;
//}
//int arr[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
//bool is(int x) {
//	int a = x / 10000;
//	int b = x % 10000 / 100;
//	int c = x % 100;
//	if (b == 0 || c == 0)return 0;
//	if (b > 12)return 0;
//	if (a % 4 == 0 && a % 100 || a % 400 && b == 2) {
//		if (c <= arr[b] + 1)
//			return 1;
//		return 0;
//	}
//	else
//		if (c <= arr[b])return 1;
//		else
//			return 0;
//}
//int main() {
//	int sum = 0;
//	cin >> sum;
//	int a = 0, b = 0;
//	while (a==0||b==0) {
//		sum++;
//		if (is(sum) == 0)continue;
//		if (a == 0&&is1(sum) ) {
//			a++;
//			cout << sum << endl;
//		}
//		if (is2(sum) && b == 0) {
//			b++;
//			cout << sum << endl;
//		}
//	}
//}
int arr[100] = {1,2,3,4,5,6,7,8,9,10};
int k = 5;
int n = 10;
int main() {
	priority_queue<int,vector<int>,greater<int>>pq;
	for (int i = 0; i < k; i++)
		pq.push(arr[i]);
	while (k < n) {
		if (arr[k] > pq.top())
		{
			pq.pop();
			pq.push(arr[k]);
		}
		k++;
	}
	while (pq.size()!=0) {
		cout << pq.top() << endl;
		pq.pop();
	}
}